<?php
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../API/php/header.php");

//Fonctions : Fonctions personnelles de l'instance
require("../php/fonctions.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Liens de test
// phpsql/exemple.php?milis=123450&ctrl=ok

//Définition des entrants
$arrayInput = array(
    "ctrl" => null
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput, $bolDecode);

//Vérification sécurité
$retourCheckKey = checkKey($connectionAuth, $prefixTable, $arrayValeur, $modePublic);

if($arrayValeur["error"] == null){
    //Si pas d'erreur
    $object_retour = new stdClass();
    $object_retour->strErreur = "";
    $object_retour->data = "";
    
    $connection->exec("SET CHARACTER SET utf8");
    
    //--------------------------------------------------------------------------
    //Pour exemple de récupération d'information un enregistrement
    //Pour test on récupère les paramètres de l'appli
    $strSql = "Select * from `".$prefixTable."tab_parametres` a
            WHERE 1=1
            AND a.`param_name` = :param_name
    ;";

    $req = $connection->prepare($strSql);
    $req->bindValue(":param_name", $arrayValeur["error"], PDO::PARAM_STR);
    
    $rows = array();
    if($req->execute()){
        $rows = $req->fetch();
    }else{
        die('Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")");
    }
    $req->closeCursor();
    
    $object_retour->data["resultat"] = $rows;
    
    //--------------------------------------------------------------------------
    //Pour exemple de récupération d'information
    //Pour test on récupère les paramètres de l'appli
    $strSql = "Select * from `".$prefixTable."tab_parametres` a
            WHERE 1=1
            AND a.`param_name` = 'maintenance'
    ;";
    
    // On envois la requète
    $select = $connection->prepare($strSql);

    if($select->execute()){
        // On indique que nous utiliserons les résultats en tant qu'objet
        $select->setFetchMode(PDO::FETCH_OBJ);

        // On transforme les résultats en tableaux d'objet
        $resultats = new stdClass();
        $resultats->data = $select->fetchAll(PDO::FETCH_OBJ);
        $resultats->nombre = count($resultats->data);

        $object_retour->data["resultat"] = $resultats;
    }else{
        $error = 'Erreur SQL:'.print_r($select->errorInfo(), true)." (".$strSql.")";
        $object_retour->strErreur = $error;
    }
    $select->closeCursor();
    
    //--------------------------------------------------------------------------
    //Pour exemple d'opération
    //Pour test on crée une table temporaire
    $strSql = "CREATE TEMPORARY TABLE coucou (
        `idElem` int(11) NOT NULL,
        `nature` varchar(100),
        PRIMARY KEY(`idElem`)
    )
	SELECT a.`id` as 'idElem', a.`param_name` as 'nature' FROM `".$prefixTable."tab_parametres` a
    ;";
    $req = $connection->prepare($strSql);
	
    $resultat = "";
    if(!($req->execute())){
        $error = 'Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")";
        $object_retour->strErreur = $error;
    }else{
        $resultat = "ok"; 
    }
    $req->closeCursor();
    $object_retour->data["resultat"] = $resultat;
    
    //--------------------------------------------------------------------------
    //Pour exemple d'ajout d'information
    $strSql = "INSERT INTO  `coucou` (
            `idElem` ,
            `nature` 
        )
        VALUES (
            99 ,  :nature
        )
    ;";

    $req = $connection->prepare($strSql);
    $req->bindValue(":nature", "coucou", PDO::PARAM_STR);

    $resultat = new stdClass();
    if($req->execute()){
        $resultat->id = $connection->lastInsertId(); 
    }else{
        $error = 'Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")";
        $object_retour->strErreur = $error;
    }
    $req->closeCursor();
    $object_retour->data["resultat"] = $resultat;
    
    //--------------------------------------------------------------------------
    $resultats_json = json_encode($object_retour);
    
    $strSorti = $resultats_json;

    if($modeDebug){
        $strSorti .= ($strSql);
    }
}else{
    //Problème sur les entrants
    $strSorti = "ERROR:".$arrayValeur["error"];
}

//Cloture de l'interface
require("../API/php/footer.php");
?>